package com.gss.system.service;

import com.gss.common.core.service.IBaseService;
import com.gss.entity.R;
import com.gss.entity.sys.dto.SysMenu;
import com.gss.entity.sys.dto.SysUser;
import com.gss.entity.sys.vo.SysMenuVo;
import com.gss.entity.sys.vo.SysUserDeptVo;

import java.util.List;

/**
 * @author DYang
 * @date 2023/6/17
 */
public interface ISysUserService extends IBaseService<SysUser> {

    /**
     * 根据用户名查询
     * @param userName
     * @return
     */
    SysUser getUserByName(String userName);

    /**
     * 用户授权部门角色
     * @param entity
     * @return
     */
    R<String> oauthDeptRole(SysUserDeptVo entity);

    /**
     * 用户授权部门角色撤销
     * @param idList
     * @return
     */
    R<String> deleteDeptRole(List<Integer> idList);

    /**
     * 根据用户名获取用户信息
     * @param username
     * @return
     */
    R<SysUserDeptVo> userInfo(String username);

    /**
     * 根据角色获取菜单权限
     * @param roles
     * @return
     */
    List<SysMenuVo> permissionRoutes(String roles);
}
